package ${pPackage}.common.controller;

import ${pPackage}.vo.UserInfo;
import org.apache.shiro.SecurityUtils;
import org.apache.shiro.subject.PrincipalCollection;
import org.apache.shiro.subject.Subject;
import org.springframework.web.bind.annotation.ModelAttribute;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Controller全局参数
 */
public class BaseController {

  protected HttpServletRequest request;
  protected HttpServletResponse response;
  protected String userId;
  protected String username;

  //使用shiro获取
  @ModelAttribute
  public void setResAnReq(HttpServletRequest request, HttpServletResponse response) {
    this.request = request;
    this.response = response;

    //获取session中的安全数据
    Subject subject = SecurityUtils.getSubject();
    //subject获取所有的安全数据集合
    PrincipalCollection principals = subject.getPrincipals();
    if (principals != null && !principals.isEmpty()) {
      //获取安全数据
      UserInfo userInfo = (UserInfo) principals.getPrimaryPrincipal();
      // 全局数据
      this.userId = userInfo.getId();
      this.username = userInfo.getUsername();
    }
  }

}
